安装包完整性校验
本章节以openEuler 22.03 ARM64架构的v25.06版本安装包完整性为例,其余操作系统、架构的完整性校验的操作方法相同。
简介
为了确认安装包在传输过程中是否由于网络连接、存储设备、恶意攻击等原因出现数据不完整或遭到篡改的问题,在获取到安装包后,需要对安装包进行完整性校验,通过了校验的安装包才能被部署。
这里通过对比校验文件中记录的校验值和手动方式计算的安装包文件校验值,判断安装包是否完整;而校验文件的合法性则通过签名文件和PGP公钥来验证。完整的信任链如下图所示。
PGP公钥指纹 --> PGP公钥 --> 签名文件 --> 校验文件 --> 安装包
前提条件
在校验安装包完整性之前,需要准备如下文件。
- openFuyao社区PGP公钥:openfuyao.gpg。
- 安装包文件:bkeadm_linux_arm64。
- sha256校验文件:bkeadm_linux_arm64.sha256。
- gpg签名文件:bkeadm_linux_arm64.sha256.asc。
操作指导
将上面四个文件放置到同一个目录下,文件完整性校验操作步骤如下。
-
用户首次下载PGP公钥的情况下,需要执行如下命令导入公钥。
gpg --import openfuyao.gpg
导入完成后,需要执行如下命令获取公钥指纹信息。
gpg --list-keys --with-fingerprint --with-subkey-fingerprint team@openfuyao.com
其中主密钥指纹应为:
4743 8CDC EE76 7323 72F8 D5C5 DD99 08AE B20D ED08
,子密钥指纹应为:0C07 D0B8 1725 C954 E7F1 EDA6 A308 9BE4 BA44 FC4F
。若输出指纹信息不符,则PGP公钥可能遭到篡改,需要重新获取。 -
执行命令如下,验证sha256校验文件合法性。
gpg --verify bkeadm_linux_arm64.sha256.asc bkeadm_linux_arm64.sha256
命令执行完成后,若输出包含
Good signature from "openFuyao <team@openfuyao.com>"
,同时主密钥和子密钥的指纹信息与上文所述一致,则sha256校验文件合法。否则说明sha256文件可能遭到篡改,需要重新获取。 -
执行命令如下,校验安装包文件完整性。
mkdir -p bin/linux/arm64
mv bkeadm_linux_arm64 bin/linux/arm64/
sha256sum -c bkeadm_linux_arm64.sha256命令执行完成后,若输出
bin/linux/arm64/bkeadm_linux_arm64: OK
,则表示安装包文件完整性未破坏。否则说明安装包完整性已破坏,需要重新获取。
说明:
因为sha256文件会校验安装包的路径,因此需要确认安装包的路径正确,没有的话就新增路径,将安装包移动到新路径下。